{
  "bundles": [
    {
      "@type": "NXBundle",
      "artifactId": "nuxeo-platform-rendition-core",
      "artifactVersion": "2021.64.6",
      "bundleGroup": {
        "@type": "NXBundleGroup",
        "bundleIds": [
          "org.nuxeo.ecm.platform.rendition.api",
          "org.nuxeo.ecm.platform.rendition.core",
          "org.nuxeo.ecm.platform.rendition.publisher",
          "org.nuxeo.ecm.platform.rendition.web"
        ],
        "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.rendition",
        "id": "grp:org.nuxeo.ecm.platform.rendition",
        "name": "org.nuxeo.ecm.platform.rendition",
        "parentIds": [
          "grp:org.nuxeo.ecm.platform"
        ],
        "readmes": [],
        "version": "2021.64"
      },
      "bundleId": "org.nuxeo.ecm.platform.rendition.core",
      "components": [
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.schema.TypeService--schema",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.rendition/org.nuxeo.ecm.platform.rendition.core/org.nuxeo.ecm.platform.rendition.schemas/Contributions/org.nuxeo.ecm.platform.rendition.schemas--schema",
              "id": "org.nuxeo.ecm.platform.rendition.schemas--schema",
              "registrationOrder": 30,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.schema.TypeService",
                "name": "org.nuxeo.ecm.core.schema.TypeService",
                "type": "service"
              },
              "version": "2021.64.6",
              "xml": "<extension point=\"schema\" target=\"org.nuxeo.ecm.core.schema.TypeService\">\n    <schema name=\"rendition\" prefix=\"rend\" src=\"schemas/rendition.xsd\"/>\n\n    <property indexOrder=\"ascending\" name=\"renditionName\" schema=\"rendition\"/>\n    <property indexOrder=\"ascending\" name=\"sourceId\" schema=\"rendition\"/>\n    <property indexOrder=\"ascending\" name=\"sourceVersionableId\" schema=\"rendition\"/>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.schema.TypeService--doctype",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.rendition/org.nuxeo.ecm.platform.rendition.core/org.nuxeo.ecm.platform.rendition.schemas/Contributions/org.nuxeo.ecm.platform.rendition.schemas--doctype",
              "id": "org.nuxeo.ecm.platform.rendition.schemas--doctype",
              "registrationOrder": 27,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.schema.TypeService",
                "name": "org.nuxeo.ecm.core.schema.TypeService",
                "type": "service"
              },
              "version": "2021.64.6",
              "xml": "<extension point=\"doctype\" target=\"org.nuxeo.ecm.core.schema.TypeService\">\n\n    <facet name=\"Rendition\">\n      <schema name=\"rendition\"/>\n    </facet>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.rendition/org.nuxeo.ecm.platform.rendition.core/org.nuxeo.ecm.platform.rendition.schemas",
          "name": "org.nuxeo.ecm.platform.rendition.schemas",
          "requirements": [],
          "resolutionOrder": 474,
          "services": [],
          "startOrder": 434,
          "version": "2021.64.6",
          "xmlFileContent": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<component name=\"org.nuxeo.ecm.platform.rendition.schemas\">\n\n  <extension target=\"org.nuxeo.ecm.core.schema.TypeService\"\n    point=\"schema\">\n    <schema name=\"rendition\" prefix=\"rend\" src=\"schemas/rendition.xsd\" />\n\n    <property schema=\"rendition\" name=\"renditionName\" indexOrder=\"ascending\" />\n    <property schema=\"rendition\" name=\"sourceId\" indexOrder=\"ascending\" />\n    <property schema=\"rendition\" name=\"sourceVersionableId\" indexOrder=\"ascending\" />\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.core.schema.TypeService\"\n    point=\"doctype\">\n\n    <facet name=\"Rendition\">\n      <schema name=\"rendition\" />\n    </facet>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/rendition-schemas-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "componentClass": "org.nuxeo.ecm.platform.rendition.service.RenditionServiceImpl",
          "documentation": "\n    The Rendition Service handles the registered rendition definitions and\n    the rendering of a document based on a rendition definition.\n    It provides an extension point to register rendition definitions.\n\n    @author Thomas Roger (troger@nuxeo.com)\n  \n",
          "documentationHtml": "<p>\nThe Rendition Service handles the registered rendition definitions and\nthe rendering of a document based on a rendition definition.\nIt provides an extension point to register rendition definitions.\n</p><p></p>",
          "extensionPoints": [
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.platform.rendition.service.RenditionService",
              "descriptors": [
                "org.nuxeo.ecm.platform.rendition.service.RenditionDefinition"
              ],
              "documentation": "\n      Extension point to register rendition definitions.\n      For instance, here is one defining a PDF rendition.\n      <code>\n    <renditionDefinition enabled=\"true\" name=\"pdf\">\n        <label>label.rendition.pdf</label>\n        <operationChain>blobToPDF</operationChain>\n    </renditionDefinition>\n</code>\n\n\n      Since 6.0:\n      <ul>\n    <li> a new allowEmptyBlob tag has been added. Setting it's value to true will allow the rendition to be available even if the target Document does not contains a Blob.</li>\n    <li> a new visible attribute has been added. Setting it's value to false will allow the rendition to be hidden from the UI services.</li>\n</ul>\n",
              "documentationHtml": "<p>\nExtension point to register rendition definitions.\nFor instance, here is one defining a PDF rendition.\n</p><p></p><pre><code>    &lt;renditionDefinition enabled&#61;&#34;true&#34; name&#61;&#34;pdf&#34;&gt;\n        &lt;label&gt;label.rendition.pdf&lt;/label&gt;\n        &lt;operationChain&gt;blobToPDF&lt;/operationChain&gt;\n    &lt;/renditionDefinition&gt;\n</code></pre><p>\nSince 6.0:\n</p><ul><li> a new allowEmptyBlob tag has been added. Setting it&#39;s value to true will allow the rendition to be available even if the target Document does not contains a Blob.</li><li> a new visible attribute has been added. Setting it&#39;s value to false will allow the rendition to be hidden from the UI services.</li></ul>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.rendition/org.nuxeo.ecm.platform.rendition.core/org.nuxeo.ecm.platform.rendition.service.RenditionService/ExtensionPoints/org.nuxeo.ecm.platform.rendition.service.RenditionService--renditionDefinitions",
              "id": "org.nuxeo.ecm.platform.rendition.service.RenditionService--renditionDefinitions",
              "label": "renditionDefinitions (org.nuxeo.ecm.platform.rendition.service.RenditionService)",
              "name": "renditionDefinitions",
              "version": "2021.64.6"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.platform.rendition.service.RenditionService",
              "descriptors": [
                "org.nuxeo.ecm.platform.rendition.service.RenditionDefinitionProviderDescriptor"
              ],
              "documentationHtml": "",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.rendition/org.nuxeo.ecm.platform.rendition.core/org.nuxeo.ecm.platform.rendition.service.RenditionService/ExtensionPoints/org.nuxeo.ecm.platform.rendition.service.RenditionService--renditionDefinitionProviders",
              "id": "org.nuxeo.ecm.platform.rendition.service.RenditionService--renditionDefinitionProviders",
              "label": "renditionDefinitionProviders (org.nuxeo.ecm.platform.rendition.service.RenditionService)",
              "name": "renditionDefinitionProviders",
              "version": "2021.64.6"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.platform.rendition.service.RenditionService",
              "descriptors": [
                "org.nuxeo.ecm.platform.rendition.service.StoredRenditionManagerDescriptor"
              ],
              "documentation": "\n      Extension point to register a StoredRenditionManager which overrides the DefaultStoredRenditionManager.\n    \n",
              "documentationHtml": "<p>\nExtension point to register a StoredRenditionManager which overrides the DefaultStoredRenditionManager.\n</p><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.rendition/org.nuxeo.ecm.platform.rendition.core/org.nuxeo.ecm.platform.rendition.service.RenditionService/ExtensionPoints/org.nuxeo.ecm.platform.rendition.service.RenditionService--storedRenditionManagers",
              "id": "org.nuxeo.ecm.platform.rendition.service.RenditionService--storedRenditionManagers",
              "label": "storedRenditionManagers (org.nuxeo.ecm.platform.rendition.service.RenditionService)",
              "name": "storedRenditionManagers",
              "version": "2021.64.6"
            },
            {
              "@type": "NXExtensionPoint",
              "componentId": "org.nuxeo.ecm.platform.rendition.service.RenditionService",
              "descriptors": [
                "org.nuxeo.ecm.platform.rendition.service.DefaultRenditionDescriptor"
              ],
              "documentation": "\n      Defines the default rendition of a given document. Contributions are of the form:\n      <code>\n    <defaultRendition reason=\"download\">\n        <script language=\"JavaScript\">\n            function run() {\n              if (CurrentUser.getName() != \"bob\") {\n                return null;\n              }\n              if (!CurrentUser.getGroups().contains(\"members\")) {\n                return 'aRenditionName`;\n              }\n              if (Document.getPropertyValue(\"dc:format\") != \"pdf\") {\n                return 'pdfRendition';\n              }\n              return 'aDefaultRendition';\n          </script>\n    </defaultRendition>\n</code>\n\n      The language can be any JVM scripting language, the default is \"JavaScript\".\n\n      The reason is optional:\n       - \"download\" will be used in the context of bulk download.\n       - \"publish\" will be used to publish the default rendition.\n\n      The script must define a \"run()\" function that returns a string which is the name of the rendition to be used.\n      The method will get called with the following global context (some values may be null):\n      Document (DocumentModel) CurrentUser (NuxeoPrincipal), Infos (Map).\n    \n",
              "documentationHtml": "<p>\nDefines the default rendition of a given document. Contributions are of the form:\n</p><p></p><pre><code>    &lt;defaultRendition reason&#61;&#34;download&#34;&gt;\n        &lt;script language&#61;&#34;JavaScript&#34;&gt;\n            function run() {\n              if (CurrentUser.getName() !&#61; &#34;bob&#34;) {\n                return null;\n              }\n              if (!CurrentUser.getGroups().contains(&#34;members&#34;)) {\n                return &#39;aRenditionName&#96;;\n              }\n              if (Document.getPropertyValue(&#34;dc:format&#34;) !&#61; &#34;pdf&#34;) {\n                return &#39;pdfRendition&#39;;\n              }\n              return &#39;aDefaultRendition&#39;;\n          &lt;/script&gt;\n    &lt;/defaultRendition&gt;\n</code></pre><p>\nThe language can be any JVM scripting language, the default is &#34;JavaScript&#34;.\n</p><p>\nThe reason is optional:\n- &#34;download&#34; will be used in the context of bulk download.\n- &#34;publish&#34; will be used to publish the default rendition.\n</p><p>\nThe script must define a &#34;run()&#34; function that returns a string which is the name of the rendition to be used.\nThe method will get called with the following global context (some values may be null):\nDocument (DocumentModel) CurrentUser (NuxeoPrincipal), Infos (Map).\n</p><p></p>",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.rendition/org.nuxeo.ecm.platform.rendition.core/org.nuxeo.ecm.platform.rendition.service.RenditionService/ExtensionPoints/org.nuxeo.ecm.platform.rendition.service.RenditionService--defaultRendition",
              "id": "org.nuxeo.ecm.platform.rendition.service.RenditionService--defaultRendition",
              "label": "defaultRendition (org.nuxeo.ecm.platform.rendition.service.RenditionService)",
              "name": "defaultRendition",
              "version": "2021.64.6"
            }
          ],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.transientstore.TransientStorageComponent--store",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.rendition/org.nuxeo.ecm.platform.rendition.core/org.nuxeo.ecm.platform.rendition.service.RenditionService/Contributions/org.nuxeo.ecm.platform.rendition.service.RenditionService--store",
              "id": "org.nuxeo.ecm.platform.rendition.service.RenditionService--store",
              "registrationOrder": 4,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.transientstore.TransientStorageComponent",
                "name": "org.nuxeo.ecm.core.transientstore.TransientStorageComponent",
                "type": "service"
              },
              "version": "2021.64.6",
              "xml": "<extension point=\"store\" target=\"org.nuxeo.ecm.core.transientstore.TransientStorageComponent\">\n    <!-- Explicit declaration based on default configuration to enforce GC -->\n    <store name=\"LazyRenditionCache\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.rendition/org.nuxeo.ecm.platform.rendition.core/org.nuxeo.ecm.platform.rendition.service.RenditionService",
          "name": "org.nuxeo.ecm.platform.rendition.service.RenditionService",
          "requirements": [],
          "resolutionOrder": 475,
          "services": [
            {
              "@type": "NXService",
              "componentId": "org.nuxeo.ecm.platform.rendition.service.RenditionService",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.rendition/org.nuxeo.ecm.platform.rendition.core/org.nuxeo.ecm.platform.rendition.service.RenditionService/Services/org.nuxeo.ecm.platform.rendition.service.RenditionService",
              "id": "org.nuxeo.ecm.platform.rendition.service.RenditionService",
              "overriden": false,
              "version": "2021.64.6"
            }
          ],
          "startOrder": 884,
          "version": "2021.64.6",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.rendition.service.RenditionService\">\n\n  <documentation>\n    The Rendition Service handles the registered rendition definitions and\n    the rendering of a document based on a rendition definition.\n    It provides an extension point to register rendition definitions.\n\n    @author Thomas Roger (troger@nuxeo.com)\n  </documentation>\n\n  <implementation\n    class=\"org.nuxeo.ecm.platform.rendition.service.RenditionServiceImpl\" />\n\n  <service>\n    <provide interface=\"org.nuxeo.ecm.platform.rendition.service.RenditionService\" />\n  </service>\n\n  <extension-point name=\"renditionDefinitions\">\n    <documentation>\n      Extension point to register rendition definitions.\n      For instance, here is one defining a PDF rendition.\n      <code>\n        <renditionDefinition name=\"pdf\" enabled=\"true\">\n          <label>label.rendition.pdf</label>\n          <operationChain>blobToPDF</operationChain>\n        </renditionDefinition>\n      </code>\n\n      Since 6.0:\n      <ul>\n         <li> a new allowEmptyBlob tag has been added. Setting it's value to true will allow the rendition to be available even if the target Document does not contains a Blob.</li>\n         <li> a new visible attribute has been added. Setting it's value to false will allow the rendition to be hidden from the UI services.</li>\n      </ul>\n\n    </documentation>\n    <object class=\"org.nuxeo.ecm.platform.rendition.service.RenditionDefinition\" />\n  </extension-point>\n\n  <extension-point name=\"renditionDefinitionProviders\">\n    <documentation>\n\n    </documentation>\n    <object class=\"org.nuxeo.ecm.platform.rendition.service.RenditionDefinitionProviderDescriptor\" />\n  </extension-point>\n\n  <extension-point name=\"storedRenditionManagers\">\n    <documentation>\n      Extension point to register a StoredRenditionManager which overrides the DefaultStoredRenditionManager.\n    </documentation>\n    <object class=\"org.nuxeo.ecm.platform.rendition.service.StoredRenditionManagerDescriptor\" />\n  </extension-point>\n\n  <extension-point name=\"defaultRendition\">\n    <documentation>\n      Defines the default rendition of a given document. Contributions are of the form:\n      <code>\n        <defaultRendition reason=\"download\">\n          <script language=\"JavaScript\">\n            function run() {\n              if (CurrentUser.getName() != \"bob\") {\n                return null;\n              }\n              if (!CurrentUser.getGroups().contains(\"members\")) {\n                return 'aRenditionName`;\n              }\n              if (Document.getPropertyValue(\"dc:format\") != \"pdf\") {\n                return 'pdfRendition';\n              }\n              return 'aDefaultRendition';\n          </script>\n        </defaultRendition>\n      </code>\n      The language can be any JVM scripting language, the default is \"JavaScript\".\n\n      The reason is optional:\n       - \"download\" will be used in the context of bulk download.\n       - \"publish\" will be used to publish the default rendition.\n\n      The script must define a \"run()\" function that returns a string which is the name of the rendition to be used.\n      The method will get called with the following global context (some values may be null):\n      Document (DocumentModel) CurrentUser (NuxeoPrincipal), Infos (Map).\n    </documentation>\n    <object class=\"org.nuxeo.ecm.platform.rendition.service.DefaultRenditionDescriptor\" />\n  </extension-point>\n\n  <extension target=\"org.nuxeo.ecm.core.transientstore.TransientStorageComponent\" point=\"store\">\n    <!-- Explicit declaration based on default configuration to enforce GC -->\n    <store name=\"LazyRenditionCache\" />\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/rendition-service.xml",
          "xmlPureComponent": false
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.rendition.service.RenditionService--defaultRendition",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.rendition/org.nuxeo.ecm.platform.rendition.core/org.nuxeo.ecm.platform.rendition.download.contrib/Contributions/org.nuxeo.ecm.platform.rendition.download.contrib--defaultRendition",
              "id": "org.nuxeo.ecm.platform.rendition.download.contrib--defaultRendition",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.rendition.service.RenditionService",
                "name": "org.nuxeo.ecm.platform.rendition.service.RenditionService",
                "type": "service"
              },
              "version": "2021.64.6",
              "xml": "<extension point=\"defaultRendition\" target=\"org.nuxeo.ecm.platform.rendition.service.RenditionService\">\n    <defaultRendition reason=\"download\">\n      <script language=\"JavaScript\">\n        function run() {\n          if (Document.getFacets().contains(\"Collection\")) {\n            return 'containerDefaultRendition';\n          } else if (Document.getFacets().contains(\"Folderish\")) {\n            return 'containerDefaultRendition';\n          } else if (Document.hasSchema(\"file\")) {\n            return 'mainBlob';\n          } else if (Document.getType() == 'Note') {\n            return 'pdf';\n          } else {\n            return 'xmlExport';\n          }\n        }\n      </script>\n    </defaultRendition>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.rendition/org.nuxeo.ecm.platform.rendition.core/org.nuxeo.ecm.platform.rendition.download.contrib",
          "name": "org.nuxeo.ecm.platform.rendition.download.contrib",
          "requirements": [],
          "resolutionOrder": 477,
          "services": [],
          "startOrder": 427,
          "version": "2021.64.6",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.rendition.download.contrib\">\n\n  <extension target=\"org.nuxeo.ecm.platform.rendition.service.RenditionService\"\n    point=\"defaultRendition\">\n    <defaultRendition reason=\"download\">\n      <script language=\"JavaScript\">\n        function run() {\n          if (Document.getFacets().contains(\"Collection\")) {\n            return 'containerDefaultRendition';\n          } else if (Document.getFacets().contains(\"Folderish\")) {\n            return 'containerDefaultRendition';\n          } else if (Document.hasSchema(\"file\")) {\n            return 'mainBlob';\n          } else if (Document.getType() == 'Note') {\n            return 'pdf';\n          } else {\n            return 'xmlExport';\n          }\n        }\n      </script>\n    </defaultRendition>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/rendition-download-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentation": "\n    Adapters contribution for Renderable documents.\n  \n",
          "documentationHtml": "<p>\nAdapters contribution for Renderable documents.\n</p><p></p>",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.api.DocumentAdapterService--adapters",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.rendition/org.nuxeo.ecm.platform.rendition.core/org.nuxeo.ecm.platform.rendition.adapters/Contributions/org.nuxeo.ecm.platform.rendition.adapters--adapters",
              "id": "org.nuxeo.ecm.platform.rendition.adapters--adapters",
              "registrationOrder": 16,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.api.DocumentAdapterService",
                "name": "org.nuxeo.ecm.core.api.DocumentAdapterService",
                "type": "service"
              },
              "version": "2021.64.6",
              "xml": "<extension point=\"adapters\" target=\"org.nuxeo.ecm.core.api.DocumentAdapterService\">\n    <adapter class=\"org.nuxeo.ecm.platform.rendition.Renderable\" factory=\"org.nuxeo.ecm.platform.rendition.adapter.RenderableAdapterFactory\"/>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.api.blobholder.BlobHolderAdapterComponent--BlobHolderFactory",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.rendition/org.nuxeo.ecm.platform.rendition.core/org.nuxeo.ecm.platform.rendition.adapters/Contributions/org.nuxeo.ecm.platform.rendition.adapters--BlobHolderFactory",
              "id": "org.nuxeo.ecm.platform.rendition.adapters--BlobHolderFactory",
              "registrationOrder": 2,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.api.blobholder.BlobHolderAdapterComponent",
                "name": "org.nuxeo.ecm.core.api.blobholder.BlobHolderAdapterComponent",
                "type": "service"
              },
              "version": "2021.64.6",
              "xml": "<extension point=\"BlobHolderFactory\" target=\"org.nuxeo.ecm.core.api.blobholder.BlobHolderAdapterComponent\">\n    <blobHolderFactory class=\"org.nuxeo.ecm.platform.rendition.adapter.DownloadBlobHolderFactory\" name=\"download\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.rendition/org.nuxeo.ecm.platform.rendition.core/org.nuxeo.ecm.platform.rendition.adapters",
          "name": "org.nuxeo.ecm.platform.rendition.adapters",
          "requirements": [],
          "resolutionOrder": 478,
          "services": [],
          "startOrder": 424,
          "version": "2021.64.6",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n\n<component name=\"org.nuxeo.ecm.platform.rendition.adapters\">\n  <documentation>\n    Adapters contribution for Renderable documents.\n  </documentation>\n\n  <extension target=\"org.nuxeo.ecm.core.api.DocumentAdapterService\" point=\"adapters\">\n    <adapter class=\"org.nuxeo.ecm.platform.rendition.Renderable\"\n      factory=\"org.nuxeo.ecm.platform.rendition.adapter.RenderableAdapterFactory\" />\n  </extension>\n\n  <extension\n    target=\"org.nuxeo.ecm.core.api.blobholder.BlobHolderAdapterComponent\"\n    point=\"BlobHolderFactory\">\n    <blobHolderFactory name=\"download\"\n                       class=\"org.nuxeo.ecm.platform.rendition.adapter.DownloadBlobHolderFactory\" />\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/rendition-adapter-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.operation.OperationServiceComponent--operations",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.rendition/org.nuxeo.ecm.platform.rendition.core/org.nuxeo.ecm.platform.rendition.operations/Contributions/org.nuxeo.ecm.platform.rendition.operations--operations",
              "id": "org.nuxeo.ecm.platform.rendition.operations--operations",
              "registrationOrder": 23,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.operation.OperationServiceComponent",
                "name": "org.nuxeo.ecm.core.operation.OperationServiceComponent",
                "type": "service"
              },
              "version": "2021.64.6",
              "xml": "<extension point=\"operations\" target=\"org.nuxeo.ecm.core.operation.OperationServiceComponent\">\n\n    <operation class=\"org.nuxeo.ecm.platform.rendition.operation.GetRendition\"/>\n    <operation class=\"org.nuxeo.ecm.platform.rendition.operation.GetContainerRendition\"/>\n    <operation class=\"org.nuxeo.ecm.platform.rendition.operation.PublishRendition\" replace=\"true\"/>\n    <operation class=\"org.nuxeo.ecm.platform.rendition.operation.UnpublishAll\"/>\n\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.rendition/org.nuxeo.ecm.platform.rendition.core/org.nuxeo.ecm.platform.rendition.operations",
          "name": "org.nuxeo.ecm.platform.rendition.operations",
          "requirements": [],
          "resolutionOrder": 479,
          "services": [],
          "startOrder": 429,
          "version": "2021.64.6",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.rendition.operations\">\n\n  <extension target=\"org.nuxeo.ecm.core.operation.OperationServiceComponent\"\n    point=\"operations\">\n\n    <operation class=\"org.nuxeo.ecm.platform.rendition.operation.GetRendition\" />\n    <operation class=\"org.nuxeo.ecm.platform.rendition.operation.GetContainerRendition\" />\n    <operation class=\"org.nuxeo.ecm.platform.rendition.operation.PublishRendition\"  replace=\"true\"/>\n    <operation class=\"org.nuxeo.ecm.platform.rendition.operation.UnpublishAll\"/>\n\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/rendition-operations-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.rendition.service.RenditionService--renditionDefinitions",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.rendition/org.nuxeo.ecm.platform.rendition.core/org.nuxeo.ecm.platform.rendition.contrib/Contributions/org.nuxeo.ecm.platform.rendition.contrib--renditionDefinitions",
              "id": "org.nuxeo.ecm.platform.rendition.contrib--renditionDefinitions",
              "registrationOrder": 0,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.rendition.service.RenditionService",
                "name": "org.nuxeo.ecm.platform.rendition.service.RenditionService",
                "type": "service"
              },
              "version": "2021.64.6",
              "xml": "<extension point=\"renditionDefinitions\" target=\"org.nuxeo.ecm.platform.rendition.service.RenditionService\">\n    <renditionDefinition class=\"org.nuxeo.ecm.platform.rendition.extension.PdfAutomationRenditionProvider\" name=\"pdf\">\n      <label>label.rendition.pdf</label>\n      <icon>/icons/pdf.png</icon>\n      <contentType>application/pdf</contentType>\n      <operationChain>blobToPDF</operationChain>\n      <filters>\n        <filter-id>allowPDFRendition</filter-id>\n      </filters>\n    </renditionDefinition>\n\n    <renditionDefinition name=\"xmlExport\">\n      <label>label.exportview.xmlExport</label>\n      <icon>/icons/xml.png</icon>\n      <contentType>text/xml</contentType>\n      <allowEmptyBlob>true</allowEmptyBlob>\n      <operationChain>xmlExportRendition</operationChain>\n    </renditionDefinition>\n\n    <renditionDefinition name=\"zipExport\">\n      <label>label.exportview.zipExport</label>\n      <icon>/icons/zip_export.png</icon>\n      <contentType>application/zip</contentType>\n      <allowEmptyBlob>true</allowEmptyBlob>\n      <operationChain>zipTreeExportRendition</operationChain>\n      <filters>\n        <filter-id>not_folder</filter-id>\n      </filters>\n    </renditionDefinition>\n\n    <renditionDefinition name=\"zipTreeExport\">\n      <label>label.exportview.zipTreeExport</label>\n      <icon>/icons/zip_tree_export.png</icon>\n      <contentType>application/zip</contentType>\n      <allowEmptyBlob>true</allowEmptyBlob>\n      <operationChain>zipTreeExportRendition</operationChain>\n      <variantPolicy>user</variantPolicy>\n      <filters>\n        <filter-id>folder</filter-id>\n      </filters>\n    </renditionDefinition>\n\n    <renditionDefinition name=\"mainBlob\" visible=\"false\">\n      <operationChain>mainBlob</operationChain>\n      <allowEmptyBlob>true</allowEmptyBlob>\n      <contentType/>\n    </renditionDefinition>\n\n    <renditionDefinition name=\"containerDefaultRendition\" visible=\"false\">\n      <contentType>application/zip</contentType>\n      <operationChain>containerContentBlob</operationChain>\n      <allowEmptyBlob>true</allowEmptyBlob>\n      <filters>\n        <filter-id>container</filter-id>\n      </filters>\n    </renditionDefinition>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.operation.OperationServiceComponent--chains",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.rendition/org.nuxeo.ecm.platform.rendition.core/org.nuxeo.ecm.platform.rendition.contrib/Contributions/org.nuxeo.ecm.platform.rendition.contrib--chains",
              "id": "org.nuxeo.ecm.platform.rendition.contrib--chains",
              "registrationOrder": 5,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.operation.OperationServiceComponent",
                "name": "org.nuxeo.ecm.core.operation.OperationServiceComponent",
                "type": "service"
              },
              "version": "2021.64.6",
              "xml": "<extension point=\"chains\" target=\"org.nuxeo.ecm.core.operation.OperationServiceComponent\">\n    <chain id=\"blobToPDF\">\n      <operation id=\"Context.PopBlob\"/>\n      <operation id=\"Blob.ToPDF\"/>\n    </chain>\n\n    <chain id=\"xmlExportRendition\">\n      <operation id=\"Context.PopDocument\"/>\n      <operation id=\"Document.Export\"/>\n    </chain>\n\n    <chain id=\"zipTreeExportRendition\">\n      <operation id=\"Context.PopDocument\"/>\n      <operation id=\"Document.Export\">\n        <param name=\"exportAsTree\" type=\"boolean\">true</param>\n      </operation>\n    </chain>\n\n    <chain id=\"mainBlob\">\n      <operation id=\"Context.PopDocument\"/>\n      <operation id=\"Document.GetBlob\"/>\n    </chain>\n\n    <chain id=\"containerContentBlob\">\n      <operation id=\"Context.PopDocument\"/>\n      <operation id=\"Document.GetContainerRendition\">\n        <param name=\"reason\" type=\"string\">download</param>\n        <param name=\"limit\" type=\"int\">200</param>\n        <param name=\"maxDepth\" type=\"int\">2</param>\n      </operation>\n    </chain>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.actions.ActionService--filters",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.rendition/org.nuxeo.ecm.platform.rendition.core/org.nuxeo.ecm.platform.rendition.contrib/Contributions/org.nuxeo.ecm.platform.rendition.contrib--filters",
              "id": "org.nuxeo.ecm.platform.rendition.contrib--filters",
              "registrationOrder": 9,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.actions.ActionService",
                "name": "org.nuxeo.ecm.platform.actions.ActionService",
                "type": "service"
              },
              "version": "2021.64.6",
              "xml": "<extension point=\"filters\" target=\"org.nuxeo.ecm.platform.actions.ActionService\">\n\n    <filter id=\"allowPDFRendition\"/>\n\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.rendition.service.RenditionService--defaultRendition",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.rendition/org.nuxeo.ecm.platform.rendition.core/org.nuxeo.ecm.platform.rendition.contrib/Contributions/org.nuxeo.ecm.platform.rendition.contrib--defaultRendition",
              "id": "org.nuxeo.ecm.platform.rendition.contrib--defaultRendition",
              "registrationOrder": 1,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.rendition.service.RenditionService",
                "name": "org.nuxeo.ecm.platform.rendition.service.RenditionService",
                "type": "service"
              },
              "version": "2021.64.6",
              "xml": "<extension point=\"defaultRendition\" target=\"org.nuxeo.ecm.platform.rendition.service.RenditionService\">\n    <defaultRendition>\n      <script language=\"JavaScript\">\n        function run() {\n          return 'xmlExport';\n        }\n      </script>\n    </defaultRendition>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.rendition/org.nuxeo.ecm.platform.rendition.core/org.nuxeo.ecm.platform.rendition.contrib",
          "name": "org.nuxeo.ecm.platform.rendition.contrib",
          "requirements": [
            "org.nuxeo.ecm.platform.rendition.operations"
          ],
          "resolutionOrder": 480,
          "services": [],
          "startOrder": 426,
          "version": "2021.64.6",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.rendition.contrib\">\n\n  <require>org.nuxeo.ecm.platform.rendition.operations</require>\n\n  <extension target=\"org.nuxeo.ecm.platform.rendition.service.RenditionService\"\n    point=\"renditionDefinitions\">\n    <renditionDefinition name=\"pdf\"\n      class=\"org.nuxeo.ecm.platform.rendition.extension.PdfAutomationRenditionProvider\">\n      <label>label.rendition.pdf</label>\n      <icon>/icons/pdf.png</icon>\n      <contentType>application/pdf</contentType>\n      <operationChain>blobToPDF</operationChain>\n      <filters>\n        <filter-id>allowPDFRendition</filter-id>\n      </filters>\n    </renditionDefinition>\n\n    <renditionDefinition name=\"xmlExport\">\n      <label>label.exportview.xmlExport</label>\n      <icon>/icons/xml.png</icon>\n      <contentType>text/xml</contentType>\n      <allowEmptyBlob>true</allowEmptyBlob>\n      <operationChain>xmlExportRendition</operationChain>\n    </renditionDefinition>\n\n    <renditionDefinition name=\"zipExport\">\n      <label>label.exportview.zipExport</label>\n      <icon>/icons/zip_export.png</icon>\n      <contentType>application/zip</contentType>\n      <allowEmptyBlob>true</allowEmptyBlob>\n      <operationChain>zipTreeExportRendition</operationChain>\n      <filters>\n        <filter-id>not_folder</filter-id>\n      </filters>\n    </renditionDefinition>\n\n    <renditionDefinition name=\"zipTreeExport\">\n      <label>label.exportview.zipTreeExport</label>\n      <icon>/icons/zip_tree_export.png</icon>\n      <contentType>application/zip</contentType>\n      <allowEmptyBlob>true</allowEmptyBlob>\n      <operationChain>zipTreeExportRendition</operationChain>\n      <variantPolicy>user</variantPolicy>\n      <filters>\n        <filter-id>folder</filter-id>\n      </filters>\n    </renditionDefinition>\n\n    <renditionDefinition name=\"mainBlob\" visible=\"false\">\n      <operationChain>mainBlob</operationChain>\n      <allowEmptyBlob>true</allowEmptyBlob>\n      <contentType></contentType>\n    </renditionDefinition>\n\n    <renditionDefinition name=\"containerDefaultRendition\" visible=\"false\">\n      <contentType>application/zip</contentType>\n      <operationChain>containerContentBlob</operationChain>\n      <allowEmptyBlob>true</allowEmptyBlob>\n      <filters>\n        <filter-id>container</filter-id>\n      </filters>\n    </renditionDefinition>\n\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.core.operation.OperationServiceComponent\"\n    point=\"chains\">\n    <chain id=\"blobToPDF\">\n      <operation id=\"Context.PopBlob\" />\n      <operation id=\"Blob.ToPDF\" />\n    </chain>\n\n    <chain id=\"xmlExportRendition\">\n      <operation id=\"Context.PopDocument\" />\n      <operation id=\"Document.Export\" />\n    </chain>\n\n    <chain id=\"zipTreeExportRendition\">\n      <operation id=\"Context.PopDocument\" />\n      <operation id=\"Document.Export\">\n        <param name=\"exportAsTree\" type=\"boolean\">true</param>\n      </operation>\n    </chain>\n\n    <chain id=\"mainBlob\">\n      <operation id=\"Context.PopDocument\" />\n      <operation id=\"Document.GetBlob\" />\n    </chain>\n\n    <chain id=\"containerContentBlob\">\n      <operation id=\"Context.PopDocument\" />\n      <operation id=\"Document.GetContainerRendition\">\n        <param type=\"string\" name=\"reason\">download</param>\n        <param type=\"int\" name=\"limit\">200</param>\n        <param type=\"int\" name=\"maxDepth\">2</param>\n      </operation>\n    </chain>\n\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.platform.actions.ActionService\"\n    point=\"filters\">\n\n    <filter id=\"allowPDFRendition\" />\n\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.platform.rendition.service.RenditionService\"\n    point=\"defaultRendition\">\n    <defaultRendition>\n      <script language=\"JavaScript\">\n        function run() {\n          return 'xmlExport';\n        }\n      </script>\n    </defaultRendition>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/rendition-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.platform.rendition.service.RenditionService--defaultRendition",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.rendition/org.nuxeo.ecm.platform.rendition.core/org.nuxeo.ecm.platform.rendition.publish.contrib/Contributions/org.nuxeo.ecm.platform.rendition.publish.contrib--defaultRendition",
              "id": "org.nuxeo.ecm.platform.rendition.publish.contrib--defaultRendition",
              "registrationOrder": 2,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.platform.rendition.service.RenditionService",
                "name": "org.nuxeo.ecm.platform.rendition.service.RenditionService",
                "type": "service"
              },
              "version": "2021.64.6",
              "xml": "<extension point=\"defaultRendition\" target=\"org.nuxeo.ecm.platform.rendition.service.RenditionService\">\n    <defaultRendition reason=\"publish\">\n      <script language=\"JavaScript\">\n        function run() {\n          if (Document.getType() == \"File\" || Document.getType() == \"Note\") {\n            return 'pdf';\n          } else if (Document.hasSchema(\"file\")) {\n            return 'mainBlob';\n          }\n          return null;\n        }\n      </script>\n    </defaultRendition>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.rendition/org.nuxeo.ecm.platform.rendition.core/org.nuxeo.ecm.platform.rendition.publish.contrib",
          "name": "org.nuxeo.ecm.platform.rendition.publish.contrib",
          "requirements": [],
          "resolutionOrder": 484,
          "services": [],
          "startOrder": 430,
          "version": "2021.64.6",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.rendition.publish.contrib\">\n\n  <extension target=\"org.nuxeo.ecm.platform.rendition.service.RenditionService\"\n    point=\"defaultRendition\">\n    <defaultRendition reason=\"publish\">\n      <script language=\"JavaScript\">\n        function run() {\n          if (Document.getType() == \"File\" || Document.getType() == \"Note\") {\n            return 'pdf';\n          } else if (Document.hasSchema(\"file\")) {\n            return 'mainBlob';\n          }\n          return null;\n        }\n      </script>\n    </defaultRendition>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/rendition-publish-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.io.MarshallerRegistry--marshallers",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.rendition/org.nuxeo.ecm.platform.rendition.core/org.nuxeo.ecm.platform.rendition.marshallers/Contributions/org.nuxeo.ecm.platform.rendition.marshallers--marshallers",
              "id": "org.nuxeo.ecm.platform.rendition.marshallers--marshallers",
              "registrationOrder": 17,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.io.MarshallerRegistry",
                "name": "org.nuxeo.ecm.core.io.MarshallerRegistry",
                "type": "service"
              },
              "version": "2021.64.6",
              "xml": "<extension point=\"marshallers\" target=\"org.nuxeo.ecm.core.io.MarshallerRegistry\">\n    <register class=\"org.nuxeo.ecm.platform.rendition.io.RenditionJsonEnricher\" enable=\"true\"/>\n    <register class=\"org.nuxeo.ecm.platform.rendition.io.PublicationJsonEnricher\" enable=\"true\"/>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.rendition/org.nuxeo.ecm.platform.rendition.core/org.nuxeo.ecm.platform.rendition.marshallers",
          "name": "org.nuxeo.ecm.platform.rendition.marshallers",
          "requirements": [],
          "resolutionOrder": 485,
          "services": [],
          "startOrder": 428,
          "version": "2021.64.6",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.rendition.marshallers\">\n  <extension target=\"org.nuxeo.ecm.core.io.MarshallerRegistry\" point=\"marshallers\">\n    <register class=\"org.nuxeo.ecm.platform.rendition.io.RenditionJsonEnricher\" enable=\"true\"/>\n    <register class=\"org.nuxeo.ecm.platform.rendition.io.PublicationJsonEnricher\" enable=\"true\"/>\n  </extension>\n</component>\n",
          "xmlFileName": "/OSGI-INF/marshallers-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.scheduler.SchedulerService--schedule",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.rendition/org.nuxeo.ecm.platform.rendition.core/org.nuxeo.ecm.platform.rendition.scheduler/Contributions/org.nuxeo.ecm.platform.rendition.scheduler--schedule",
              "id": "org.nuxeo.ecm.platform.rendition.scheduler--schedule",
              "registrationOrder": 5,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.scheduler.SchedulerService",
                "name": "org.nuxeo.ecm.core.scheduler.SchedulerService",
                "type": "service"
              },
              "version": "2021.64.6",
              "xml": "<extension point=\"schedule\" target=\"org.nuxeo.ecm.core.scheduler.SchedulerService\">\n    <schedule id=\"storedRenditionsCleanup\">\n      <event>storedRenditionsCleanup</event>\n      <!-- every day at 11.59 PM -->\n      <cronExpression>0 59 23 * * ?</cronExpression>\n    </schedule>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.event.EventServiceComponent--listener",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.rendition/org.nuxeo.ecm.platform.rendition.core/org.nuxeo.ecm.platform.rendition.scheduler/Contributions/org.nuxeo.ecm.platform.rendition.scheduler--listener",
              "id": "org.nuxeo.ecm.platform.rendition.scheduler--listener",
              "registrationOrder": 35,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.event.EventServiceComponent",
                "name": "org.nuxeo.ecm.core.event.EventServiceComponent",
                "type": "service"
              },
              "version": "2021.64.6",
              "xml": "<extension point=\"listener\" target=\"org.nuxeo.ecm.core.event.EventServiceComponent\">\n    <listener async=\"true\" class=\"org.nuxeo.ecm.platform.rendition.listener.StoredRenditionsCleanupListener\" name=\"storedRenditionsCleanup\" postCommit=\"true\">\n      <event>storedRenditionsCleanup</event>\n    </listener>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.rendition/org.nuxeo.ecm.platform.rendition.core/org.nuxeo.ecm.platform.rendition.scheduler",
          "name": "org.nuxeo.ecm.platform.rendition.scheduler",
          "requirements": [],
          "resolutionOrder": 486,
          "services": [],
          "startOrder": 433,
          "version": "2021.64.6",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.rendition.scheduler\">\n\n  <extension target=\"org.nuxeo.ecm.core.scheduler.SchedulerService\"\n    point=\"schedule\">\n    <schedule id=\"storedRenditionsCleanup\">\n      <event>storedRenditionsCleanup</event>\n      <!-- every day at 11.59 PM -->\n      <cronExpression>0 59 23 * * ?</cronExpression>\n    </schedule>\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.core.event.EventServiceComponent\"\n    point=\"listener\">\n    <listener name=\"storedRenditionsCleanup\" async=\"true\" postCommit=\"true\"\n      class=\"org.nuxeo.ecm.platform.rendition.listener.StoredRenditionsCleanupListener\">\n      <event>storedRenditionsCleanup</event>\n    </listener>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/rendition-scheduler-contrib.xml",
          "xmlPureComponent": true
        },
        {
          "@type": "NXComponent",
          "documentationHtml": "",
          "extensionPoints": [],
          "extensions": [
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.work.service--queues",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.rendition/org.nuxeo.ecm.platform.rendition.core/org.nuxeo.ecm.platform.rendition.workmanager/Contributions/org.nuxeo.ecm.platform.rendition.workmanager--queues",
              "id": "org.nuxeo.ecm.platform.rendition.workmanager--queues",
              "registrationOrder": 12,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.work.service",
                "name": "org.nuxeo.ecm.core.work.service",
                "type": "service"
              },
              "version": "2021.64.6",
              "xml": "<extension point=\"queues\" target=\"org.nuxeo.ecm.core.work.service\">\n    <queue id=\"renditionBuilder\">\n      <maxThreads>2</maxThreads>\n      <category>renditionBuilder</category>\n    </queue>\n  </extension>"
            },
            {
              "@type": "NXContribution",
              "documentationHtml": "",
              "extensionPoint": "org.nuxeo.ecm.core.transientstore.TransientStorageComponent--store",
              "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.rendition/org.nuxeo.ecm.platform.rendition.core/org.nuxeo.ecm.platform.rendition.workmanager/Contributions/org.nuxeo.ecm.platform.rendition.workmanager--store",
              "id": "org.nuxeo.ecm.platform.rendition.workmanager--store",
              "registrationOrder": 5,
              "targetComponentName": {
                "rawName": "service:org.nuxeo.ecm.core.transientstore.TransientStorageComponent",
                "name": "org.nuxeo.ecm.core.transientstore.TransientStorageComponent",
                "type": "service"
              },
              "version": "2021.64.6",
              "xml": "<extension point=\"store\" target=\"org.nuxeo.ecm.core.transientstore.TransientStorageComponent\">\n    <store name=\"RenditionCache\">\n      <firstLevelTTL>240</firstLevelTTL>\n      <secondLevelTTL>10</secondLevelTTL>\n    </store>\n  </extension>"
            }
          ],
          "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.rendition/org.nuxeo.ecm.platform.rendition.core/org.nuxeo.ecm.platform.rendition.workmanager",
          "name": "org.nuxeo.ecm.platform.rendition.workmanager",
          "requirements": [],
          "resolutionOrder": 487,
          "services": [],
          "startOrder": 441,
          "version": "2021.64.6",
          "xmlFileContent": "<?xml version=\"1.0\"?>\n<component name=\"org.nuxeo.ecm.platform.rendition.workmanager\" version=\"1.0\">\n\n  <extension target=\"org.nuxeo.ecm.core.work.service\" point=\"queues\">\n    <queue id=\"renditionBuilder\">\n      <maxThreads>${nuxeo.work.queue.renditionBuilder.threads:=2}</maxThreads>\n      <category>renditionBuilder</category>\n    </queue>\n  </extension>\n\n  <extension target=\"org.nuxeo.ecm.core.transientstore.TransientStorageComponent\" point=\"store\">\n    <store name=\"RenditionCache\">\n      <firstLevelTTL>${nuxeo.transientstore.rendition.cache.ttl:=240}</firstLevelTTL>\n      <secondLevelTTL>${nuxeo.transientstore.rendition.cache.ttl2:=10}</secondLevelTTL>\n    </store>\n  </extension>\n\n</component>\n",
          "xmlFileName": "/OSGI-INF/rendition-workmanager-contrib.xml",
          "xmlPureComponent": true
        }
      ],
      "fileName": "nuxeo-platform-rendition-core-2021.64.6.jar",
      "groupId": "org.nuxeo.ecm.platform",
      "hierarchyPath": "/grp:org.nuxeo.ecm.platform/grp:org.nuxeo.ecm.platform.rendition/org.nuxeo.ecm.platform.rendition.core",
      "id": "org.nuxeo.ecm.platform.rendition.core",
      "location": "",
      "manifest": "Manifest-Version: 1.0\r\nArchiver-Version: Plexus Archiver\r\nCreated-By: Apache Maven\r\nBuilt-By: root\r\nBuild-Jdk: 11.0.24\r\nBundle-ManifestVersion: 1\r\nBundle-Version: 1.0.0\r\nBundle-Name: Nuxeo Platform Rendition Core\r\nBundle-SymbolicName: org.nuxeo.ecm.platform.rendition.core;singleton:=\r\n true\r\nBundle-Vendor: Nuxeo\r\nNuxeo-Component: OSGI-INF/rendition-schemas-contrib.xml,OSGI-INF/rendi\r\n tion-service.xml,OSGI-INF/rendition-contrib.xml,OSGI-INF/rendition-do\r\n wnload-contrib.xml,OSGI-INF/rendition-adapter-contrib.xml,OSGI-INF/re\r\n ndition-operations-contrib.xml,OSGI-INF/rendition-publish-contrib.xml\r\n ,OSGI-INF/marshallers-contrib.xml,OSGI-INF/rendition-scheduler-contri\r\n b.xml,OSGI-INF/rendition-workmanager-contrib.xml\r\n\r\n",
      "maxResolutionOrder": 487,
      "minResolutionOrder": 474,
      "packages": [],
      "requirements": [],
      "version": "2021.64.6"
    }
  ],
  "creationDate": 1734363736555,
  "key": "Nuxeo Platform-2021.64",
  "name": "Nuxeo Platform",
  "operations": [
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Files",
      "contributingComponent": "org.nuxeo.ecm.platform.rendition.operations",
      "description": "Gets the list of blob of the folder's children or the collection's members default renditions. Returns a blob list file containing all the default rendition blobs.",
      "hierarchyPath": "/op:Document.GetContainerRendition",
      "label": "Gets the folder's children or the collection's members default renditions",
      "name": "Document.GetContainerRendition",
      "operationClass": "org.nuxeo.ecm.platform.rendition.operation.GetContainerRendition",
      "params": [
        {
          "description": "Limit of members to be returned. Default is 100.",
          "isRequired": false,
          "name": "limit",
          "order": 0,
          "type": "int",
          "values": [],
          "widget": null
        },
        {
          "description": "Depth of the hierarchy to be explored. Default is 1.",
          "isRequired": false,
          "name": "maxDepth",
          "order": 0,
          "type": "int",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "reason",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "blob"
      ],
      "url": "Document.GetContainerRendition",
      "version": "2021.64.6"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Files",
      "contributingComponent": "org.nuxeo.ecm.platform.rendition.operations",
      "description": "Gets a document rendition given its name. Returns the rendition blob.",
      "hierarchyPath": "/op:Document.GetRendition",
      "label": "Gets a document rendition",
      "name": "Document.GetRendition",
      "operationClass": "org.nuxeo.ecm.platform.rendition.operation.GetRendition",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "renditionName",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "blob",
        "documents",
        "bloblist"
      ],
      "url": "Document.GetRendition",
      "version": "2021.64.6"
    },
    {
      "@type": "NXOperation",
      "aliases": [
        "Document.PublishRendition",
        "Document.Publish"
      ],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.platform.rendition.operations",
      "description": "input document's chosen rendition into the target section. If rendition is not given and default rendition option is false, it falls back on default publishing. Existing proxy is overrided if the override attribute is set. Return the created proxy.",
      "hierarchyPath": "/op:Document.PublishToSection",
      "label": "Publish Document's Rendition",
      "name": "Document.PublishToSection",
      "operationClass": "org.nuxeo.ecm.platform.rendition.operation.PublishRendition",
      "params": [
        {
          "description": null,
          "isRequired": true,
          "name": "target",
          "order": 0,
          "type": "document",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "defaultRendition",
          "order": 0,
          "type": "boolean",
          "values": [],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "override",
          "order": 0,
          "type": "boolean",
          "values": [
            "true"
          ],
          "widget": null
        },
        {
          "description": null,
          "isRequired": false,
          "name": "renditionName",
          "order": 0,
          "type": "string",
          "values": [],
          "widget": null
        }
      ],
      "signature": [
        "document",
        "document",
        "documents",
        "documents"
      ],
      "url": "Document.PublishToSection",
      "version": "2021.64.6"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Document",
      "contributingComponent": "org.nuxeo.ecm.platform.rendition.operations",
      "description": "Unpublish all publications of the input document. Only publications that current user can remove will be unpublished.",
      "hierarchyPath": "/op:Document.UnpublishAll",
      "label": "Unpublish Document's Publications",
      "name": "Document.UnpublishAll",
      "operationClass": "org.nuxeo.ecm.platform.rendition.operation.UnpublishAll",
      "params": [],
      "signature": [
        "document",
        "void"
      ],
      "url": "Document.UnpublishAll",
      "version": "2021.64.6"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Chain",
      "contributingComponent": "org.nuxeo.ecm.platform.rendition.contrib",
      "hierarchyPath": "/op:blobToPDF",
      "label": "blobToPDF",
      "name": "blobToPDF",
      "operationClass": "org.nuxeo.ecm.automation.core.impl.OperationChainCompiler.CompiledChainImpl",
      "params": [],
      "signature": [
        "void",
        "blob"
      ],
      "url": "blobToPDF",
      "version": "2021.64.6"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Chain",
      "contributingComponent": "org.nuxeo.ecm.platform.rendition.contrib",
      "hierarchyPath": "/op:containerContentBlob",
      "label": "containerContentBlob",
      "name": "containerContentBlob",
      "operationClass": "org.nuxeo.ecm.automation.core.impl.OperationChainCompiler.CompiledChainImpl",
      "params": [],
      "signature": [
        "void",
        "blob"
      ],
      "url": "containerContentBlob",
      "version": "2021.64.6"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Chain",
      "contributingComponent": "org.nuxeo.ecm.platform.rendition.contrib",
      "hierarchyPath": "/op:mainBlob",
      "label": "mainBlob",
      "name": "mainBlob",
      "operationClass": "org.nuxeo.ecm.automation.core.impl.OperationChainCompiler.CompiledChainImpl",
      "params": [],
      "signature": [
        "void",
        "blob"
      ],
      "url": "mainBlob",
      "version": "2021.64.6"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Chain",
      "contributingComponent": "org.nuxeo.ecm.platform.rendition.contrib",
      "hierarchyPath": "/op:xmlExportRendition",
      "label": "xmlExportRendition",
      "name": "xmlExportRendition",
      "operationClass": "org.nuxeo.ecm.automation.core.impl.OperationChainCompiler.CompiledChainImpl",
      "params": [],
      "signature": [
        "void",
        "blob"
      ],
      "url": "xmlExportRendition",
      "version": "2021.64.6"
    },
    {
      "@type": "NXOperation",
      "aliases": [],
      "category": "Chain",
      "contributingComponent": "org.nuxeo.ecm.platform.rendition.contrib",
      "hierarchyPath": "/op:zipTreeExportRendition",
      "label": "zipTreeExportRendition",
      "name": "zipTreeExportRendition",
      "operationClass": "org.nuxeo.ecm.automation.core.impl.OperationChainCompiler.CompiledChainImpl",
      "params": [],
      "signature": [
        "void",
        "blob"
      ],
      "url": "zipTreeExportRendition",
      "version": "2021.64.6"
    }
  ],
  "packages": [],
  "pluginSnapshots": {},
  "releaseDate": 1734363736555,
  "version": "2021.64"
}